package com.xmtlxx.wms.domain.bo;

import com.xmtlxx.common.core.domain.BaseEntity;
import com.xmtlxx.common.core.validate.AddGroup;
import com.xmtlxx.common.core.validate.EditGroup;
import com.xmtlxx.wms.domain.vo.ViewingDtlVo;
import com.xmtlxx.system.domain.SysOss;
import com.xmtlxx.wms.domain.vo.ViewingPersonVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 看样记录业务对象 t_viewing
 *
 * @author xmtlxx
 * @date 2022-08-15
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("看样记录业务对象")
public class ViewingBo extends BaseEntity {

    /**
     * 记录ID
     */
    @ApiModelProperty(value = "记录ID")
    private String id;

    /**
     * 看样编号
     */
    @ApiModelProperty(value = "看样编号", required = true)
    @NotBlank(message = "看样编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String viewingNo;

    /**
     * 申请部门ID
     */
    @ApiModelProperty(value = "申请部门ID", required = true)
    @NotNull(message = "申请部门ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;

    /**
     * 申请人
     */
    @ApiModelProperty(value = "申请人", required = true)
    @NotNull(message = "申请人不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long operator;

    /**
     * 申请日期
     */
    @ApiModelProperty(value = "申请日期", required = true)
    @NotNull(message = "申请日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date applyDay;

    /**
     * 仓库ID
     */
    @ApiModelProperty(value = "仓库ID", required = true)
    @NotBlank(message = "仓库ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String storeId;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String memo;

    /**
     * 图片附件
     */
    @ApiModelProperty(value = "图片附件")
    private String pics;

    /**
     * 删除标识
     */
    @ApiModelProperty(value = "删除标识")
    private String delFlag;

    private List<ViewingDtlVo> items;

    private List<SysOss> oss;

    private List<SysOss> itemsOss;

    /**
     * 中心受理人签字
     */
    private String centerSign;
    private String centerOssId;

    /**
     * 阅证人签字
     */
    private String signs;
    private String signOssId;

    /**
     * 联系人
     */
    @ApiModelProperty("联系人")
    private String name;

    /**
     * 联系电话
     */
    @ApiModelProperty("联系电话")
    private String tel;

    /**
     * 身份证号码
     */
    @ApiModelProperty("身份证号码")
    private String idCard;

    /**
     * 证件类型
     */
    @ApiModelProperty("证件类型")
    private String cardType;


    /**
     * 审核状态
     */
    @ApiModelProperty("审核状态")
    private String checkStatus;

    /**
     * 审核人
     */
    @ApiModelProperty("审核人")
    private String checker;

    /**
     * 审核时间
     */
    @ApiModelProperty("审核时间")
    private Date checkTime;

    private String submitType;
    /**
     * 示证方式
     */
    @ApiModelProperty("示证方式")
    private String watchType;

    /**
     * 示证类型
     */
    @ApiModelProperty("示证类型")
    private String type;

    private String relatedId;

    private List<ViewingPersonVo> personData;

    private String viewingType;

    private String pno;
}
